package negocio;

import dal.ClienteDAL;

import excepciones.AvwException;

import java.util.logging.Logger;

import util.Utiles;

/**
 * Clase de clientes
 */
public class Cliente {
    
    private String cliCodigo;
    private String cliNombre;
    private String cliRazonSocial;
    private String cliDireccion;
    private String cliPiso;
    private String cliDepartamento;
    private Ubicacion cliLocalidad;
    private Ubicacion cliProvincia;
    private Ubicacion cliPais;
    private String cliCodigoPostal;
    private String cliIngresosBrutos;
    private String cliTipoIva;
    private String cliCuit;
    private String cliEmail;
    private String cliContrasenia;
    
    static final Logger logger = Utiles.iniciarLogger("Cliente", true);
    /**
     * Constructor
     */
    public Cliente() {
        cliLocalidad = new Ubicacion();
        cliProvincia = new Ubicacion();
        cliPais = new Ubicacion();        
    }
    
    /**
     * Constructor
     */
    public Cliente(String cliCodigo) {
        cliLocalidad = new Ubicacion();
        cliProvincia = new Ubicacion();
        cliPais = new Ubicacion(); 
        this.setCliCodigo(cliCodigo);
    }
    /**
     * Constructor
     */
    public Cliente(String cliCodigo, String cliNombre) {
        this.setCliCodigo(cliCodigo);
        this.setCliNombre(cliNombre);
    }

    public String getCliCodigo() {
        return cliCodigo;
    }

    public void setCliCodigo(String cliCodigo) {
        this.cliCodigo = cliCodigo;
    }

    public String getCliNombre() {
        return cliNombre;
    }

    public void setCliNombre(String cliNombre) {
        this.cliNombre = cliNombre;
    }

    public String getCliRazonSocial() {
        return cliRazonSocial;
    }

    public void setCliRazonSocial(String cliRazonSocial) {
        this.cliRazonSocial = cliRazonSocial;
    }

    public String getCliDireccion() {
        return cliDireccion;
    }

    public void setCliDireccion(String cliDireccion) {
        this.cliDireccion = cliDireccion;
    }

    public String getCliPiso() {
        return cliPiso;
    }

    public void setCliPiso(String cliPiso) {
        this.cliPiso = cliPiso;
    }

    public String getCliDepartamento() {
        return cliDepartamento;
    }

    public void setCliDepartamento(String cliDepartamento) {
        this.cliDepartamento = cliDepartamento;
    }

    public Ubicacion getCliLocalidad() {
        return cliLocalidad;
    }

    public void setCliLocalidad(Ubicacion cliLocalidad) {
        this.cliLocalidad = cliLocalidad;
    }

    public Ubicacion getCliProvincia() {
        return cliProvincia;
    }

    public void setCliProvincia(Ubicacion cliProvincia) {
        this.cliProvincia = cliProvincia;
    }

    public Ubicacion getCliPais() {
        return cliPais;
    }

    public void setCliPais(Ubicacion cliPais) {
        this.cliPais = cliPais;
    }

    public String getCliCodigoPostal() {
        return cliCodigoPostal;
    }

    public void setCliCodigoPostal(String cliCodigoPostal) {
        this.cliCodigoPostal = cliCodigoPostal;
    }

    public String getCliIngresosBrutos() {
        return Utiles.noNull(cliIngresosBrutos);
    }

    public void setCliIngresosBrutos(String cliIngresosBrutos) {
        this.cliIngresosBrutos = cliIngresosBrutos;
    }

    public String getCliTipoIva() {
        return cliTipoIva;
    }

    public void setCliTipoIva(String cliTipoIva) {
        this.cliTipoIva = cliTipoIva;
    }

    public String getCliCuit() {
        return cliCuit;
    }

    public void setCliCuit(String cliCuit) {
        this.cliCuit = cliCuit;
    }

    public String getCliEmail() {
        return cliEmail;
    }

    public void setCliEmail(String cliEmail) {
        this.cliEmail = cliEmail;
    }

    public String getCliContrasenia() {
        return cliContrasenia;
    }

    public void setCliContrasenia(String cliContrasenia) {
        this.cliContrasenia = cliContrasenia;
    }
    
    /**
     * @return No (excepcion si no coincide)
     * @param contrasenia
     * @throws AvwException No coinciden las contrasenias
     */
     public void validarContrasenia(String contrasenia)throws AvwException{

         
        if(!contrasenia.equals(this.cliContrasenia)){
            logger.info("No coinciden las contrasenias.");
            throw new AvwException("No coincide las contrasenias", "contraseniaMal");
        }

     }
}
